package mysql

import (
	"MyBlogs/models"
	"fmt"
	"github.com/gin-gonic/gin"
)

// 添加评论
func SetRemark(context *gin.Context, remark *models.Remark) {
	err := Conn.Table("remark").Create(&remark).Error
	if err != nil {
		fmt.Printf(err.Error())
	}
	context.JSON(200, gin.H{
		"data": "评论成功",
	})
}

// 遍历某个文章所有的评论
func GetRemark(id int64) []models.ArtRem {
	rem := make([]models.ArtRem, 0)
	err := Conn.Raw("select r.*,a.title,u.name from article a,remark r ,user u where r.art_id = a.id and r.user_id = u.id and a.id= ?", id).Find(&rem).Error
	if err != nil {
		fmt.Printf(err.Error())
	}
	return rem
}

// 遍历所有的 评论  &&  根据 文章id 查文章名字  这是管理员的评论管理内容
func AllRemark() models.ArtRems {
	rem := make([]models.ArtRem, 0)
	if err := Conn.Raw("select r.*,a.title,u.name from article a,remark r ,user u where r.art_id = a.id and r.user_id = u.id").Scan(&rem); err != nil {

	}
	rep := make([]models.RemarkReplyextra, 0)
	if err1 := Conn.Raw("select  re.id,re.user_name,re.reply_content,re.create_time , a.title,a.id  from remark_reply re,article a,remark r where re.remark_id = r.id and r.art_id = a.id").Scan(&rep); err1 != nil {
	}

	return models.ArtRems{
		Artrem:      rem,
		Remarkreply: rep,
	}
}

// 删除某一个评论   &&  并且删除 该评论的回复评论
func DelRemark(id int64, ty int64) {

	if ty == 0 { // 删除 楼主评论
		err := Conn.Exec("delete from remark where id = ?", id).Error
		if err != nil {
			fmt.Printf(err.Error())
		}
		err1 := Conn.Exec("delete from remark_reply where remark_id = ?", id).Error
		if err1 != nil {
			fmt.Printf(err1.Error())
		}
	} else if ty == 1 { // 删除 楼主下面的 小评论
		err1 := Conn.Exec("delete from remark_reply where id = ?", id).Error
		if err1 != nil {
			fmt.Printf(err1.Error())
		}

	}
}

// 回复评论 的添加
func AddReplyRemark(replay *models.RemarkReply) {
	err := Conn.Table("remark_reply").Create(&replay).Error
	if err != nil {
		fmt.Printf(err.Error())
	}
}

// 加载 某篇文章中，某一层楼 下面的 回复评论
func OneReplyRemark(id int64) []models.RemarkReply {
	rem := make([]models.RemarkReply, 0)
	err := Conn.Raw("select * from remark_reply where remark_id in (select id from remark where  art_id = ?)", id).Find(&rem).Error
	if err != nil {
		fmt.Printf(err.Error())
	}
	return rem
}
